/*
  存放 工具 的
*/
import $ from 'jquery'
class MUtil {
  request (params) {
    //相当于 vue 中的axios,用来向后台发送ajax请求的
    return new Promise( (resolve, reject) => {
      $.ajax({
        type: params.type || 'get',
        url: params.url || '',
        dataType: params.dataType || 'json',
        data: params.data || null,
        success: res=> {
          // console.log(res)
          if (res.status === 0) {
            typeof resolve === 'function' && resolve(res.data, res.msg)
          } else if (res.status === 10) {
            this.doLogin()
          } else {
            typeof reject === 'function' && reject(res.msg || res.data)
          }
        },
        error: err=> {
          typeof reject === 'function' && reject(err.statusText)
        }
      })

    } )
  }
  // 跳转登陆
  doLogin () {
    window.location.href= '/login?redirect='+ encodeURIComponent(window.location.pathnam)
  }
  // 获取url 参数
  getUrlParam (name) {
    // param1=123&param2=456
    let queryString = window.location.search.split('?')[1] || ''
    let exp=new RegExp( "(^|&)"+ name + "=([^&]*)(&|$)" )
    let result = queryString.match(exp)
    // result 是一个数组 ['param1=123', '', '123', '&']
    return result ? decodeURIComponent(result[2]) : null
  }
  //错误提示
  errorTips (errMsg) {
    alert(errMsg || '好像哪里出错了')
  }
  //本地存储用户信息
  setUserInfo (key, value) {
    let dataType = typeof value
    if (dataType === 'object') {
      window.localStorage.setItem(key,JSON.stringify(value))
    } else if (['string','number','boolean'].indexOf(dataType)>=0) {
      window.localStorage.setItem(key, value)
    } else {
      alert('不是我们要保存的数据格式')
    }
  }
  //获取本地用户信息
  getUserInfo (key) {
    let data=window.localStorage.getItem(key)
    if(data){
      return JSON.parse(data)
    }else{
      return ''
    }
  }
  // 删除本地用户信息
  removeUserInfo(key) {
    window.localStorage.removeItem(key)
  }

}

export default MUtil